package dao

import (
	"time"
)

// 这是 LiBill 的全局公开dao对象
var LiBillDao = liBillDao{}

// 这是 li_bill表 的实体类
type LiBill struct {
	Id                           int       `json:"id" form:"id" v:"id"`                                                                                     // ID
	CreateTime                   time.Time `json:"create_time" form:"create_time" v:"create_time"`                                                          // 创建时间
	BankAccountName              string    `json:"bank_account_name" form:"bank_account_name" v:"bank_account_name"`                                        // 银行开户名
	BankAccountNumber            string    `json:"bank_account_number" form:"bank_account_number" v:"bank_account_number"`                                  // 公司银行账号
	BankCode                     string    `json:"bank_code" form:"bank_code" v:"bank_code"`                                                                // 支行联行号
	BankName                     string    `json:"bank_name" form:"bank_name" v:"bank_name"`                                                                // 开户银行支行名称
	BillPrice                    float64   `json:"bill_price" form:"bill_price" v:"bill_price"`                                                             // 最终结算金额
	BillStatus                   string    `json:"bill_status" form:"bill_status" v:"bill_status"`                                                          // 状态 OUT(已出账),CHECK(已对账),EXAMINE(已审核),PAY(已付款)
	CommissionPrice              float64   `json:"commission_price" form:"commission_price" v:"commission_price"`                                           // 平台收取佣金
	DistributionCommission       float64   `json:"distribution_commission" form:"distribution_commission" v:"distribution_commission"`                      // 分销返现支出
	DistributionRefundCommission float64   `json:"distribution_refund_commission" form:"distribution_refund_commission" v:"distribution_refund_commission"` // 分销订单退还
	OrderPrice                   float64   `json:"order_price" form:"order_price" v:"order_price"`                                                          // 结算周期内订单付款总金额
	PayTime                      time.Time `json:"pay_time" form:"pay_time" v:"pay_time"`                                                                   // 平台付款时间
	RefundCommissionPrice        float64   `json:"refund_commission_price" form:"refund_commission_price" v:"refund_commission_price"`                      // 退单产生退还佣金金额
	RefundPrice                  float64   `json:"refund_price" form:"refund_price" v:"refund_price"`                                                       // 退单金额
	StoreId                      string    `json:"store_id" form:"store_id" v:"store_id"`                                                                   // 店铺ID
	StoreName                    string    `json:"store_name" form:"store_name" v:"store_name"`                                                             // 店铺名称
	SiteCouponCommission         float64   `json:"site_coupon_commission" form:"site_coupon_commission" v:"site_coupon_commission"`                         // 平台优惠券补贴
	SiteCouponRefundCommission   float64   `json:"site_coupon_refund_commission" form:"site_coupon_refund_commission" v:"site_coupon_refund_commission"`    // 退货平台优惠券补贴返还
	Sn                           string    `json:"sn" form:"sn" v:"sn"`                                                                                     // 账单号
	EndTime                      time.Time `json:"end_time" form:"end_time" v:"end_time"`                                                                   // 结算结束时间
	StartTime                    time.Time `json:"start_time" form:"start_time" v:"start_time"`                                                             // 结算开始时间

}

// 注意:这是 LiBill 的私有dao对象
type liBillDao struct {
	Insert func(arg LiBill) int    //插入一条记录
	Update func(arg LiBill) int    //更新一条记录
	Delete func(arg LiBill) int    //删除一条记录
	Select func(arg LiBill) LiBill //获取一条记录
}
